package com.ict.ms.trackPlayBack.facade.api;


import com.ict.ms.trackPlayBack.facade.common.AnnularSectorWithLongitudeCrossed180;
import com.ict.ms.trackPlayBack.facade.common.CircularSectorWithLongitudeCrossed180;
import com.ict.ms.trackPlayBack.facade.common.IFInArea;
import com.ict.ms.trackPlayBack.facade.common.PolygonWithLongitudeCrossed180;
import com.ict.ms.trackPlayBack.facade.dto.AreaParams;
import com.ict.ms.trackPlayBack.facade.dto.Circular;
import com.ict.ms.trackPlayBack.facade.dto.CircularSector;
import com.ict.ms.trackPlayBack.facade.dto.ResultObjWithCount;
import com.ict.ms.trackPlayBack.facade.model.AreaPlayBack;
import com.ict.ms.trackPlayBack.facade.model.MapFusePlayBackList;
import com.ict.ms.trackPlayBack.facade.model.MapOrigPlayBackList;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;


public interface IHistoryService {


    /**
     * 矩形区域态势回放
     * @param hisAreaParams
     * @return
     */
    public ResultObjWithCount getHistoryDegInfo(AreaParams hisAreaParams, int mode);

    /**
     * 圆形区域态势回放-mysql版本
     * @param hisAreaParams 该圆形的外切矩形
     * @param circular 圆形对象
     * @return
     */
    public ResultObjWithCount hisPlayBackCircular(int mode,AreaParams hisAreaParams, Circular circular);
    /**
     * 扇（环）形区域态势回放
     * @param mode
     * @param hisAreaParams
     * @param circularSector
     * @return
     */
    public ResultObjWithCount hisPlayBackSector(int mode,AreaParams hisAreaParams,CircularSector circularSector);
    /**
     * 多边形区域态势回放
     * @param mode
     * @param hisAreaParams
     * @return
     */
    public ResultObjWithCount hisPlayBackPolygons(int mode,AreaParams hisAreaParams, ArrayList<Double> point_x_list,ArrayList<Double> point_y_list);

    /**
     * 原始模式对指定列表进行唯一标识列表分类方法
     * @param map
     * @param key
     * @param areaPlayBack
     */
    public void putFuseAdd(Map<String,ArrayList<AreaPlayBack>> map, String key, AreaPlayBack areaPlayBack);

    /**
     * 原始模式对指定列表进行唯一标识列表分类方法
     * @param map
     * @param key
     * @param areaPlayBack
     */
    public void putOrigAdd(Map<String,ArrayList<AreaPlayBack>> map, String key, AreaPlayBack areaPlayBack);
}